package com.hibase.core.rule.service.ruletable;

import com.github.pagehelper.PageInfo;
import com.hibase.core.mybatis.service.BaseService;
import com.hibase.core.rule.constant.RuleStatus;
import com.hibase.core.rule.entity.ruletable.RuleTable;
import com.hibase.core.rule.entity.ruletable.vo.RuleTableSearchVO;
import com.hibase.core.rule.entity.ruletable.vo.RuleTableUpdateVO;
import com.hibase.core.rule.entity.ruletable.vo.RuleTableViewVO;

import java.util.List;

/**
 * <p>
 * 动态规则表 服务类
 * </p>
 *
 * @author hufeng
 * @since 2019-06-10
 */
public interface RuleTableService extends BaseService<RuleTable> {

    /**
     * 查询动态规则表列表
     *
     * @param searchVO
     * @return
     */
    PageInfo<RuleTable> selectRuleTableList(RuleTableSearchVO searchVO);

    /**
     * 改变动态规则表记录
     *
     * @param entity
     * @return
     */
    void saveRuleTable(RuleTable entity);

    /**
     * 查询动态规则表详情
     *
     * @param id
     * @return
     */
    RuleTableViewVO viewRuleTable(String id);

    /**
     * 删除动态规则表
     *
     * @param ids
     */
    void deleteRuleTable(List<String> ids);

    /**
     * 启用禁用
     * @param ids
     * @param status
     */
    void operaRuleTable(List<String> ids, RuleStatus status);

    /**
     * 编辑表信息和表关联字段
     * @param updateVO
     */
    void updateRuleTable(RuleTableUpdateVO updateVO);
}
